package com.hs.srm.base.common.utils;

/**
 * @author Wangpeidong
 * @create 2018-06-07 22:21
 **/
public class DomesticConst {

	/**
	 * 保洁订单状态
	 */
	public static class OrderCleanupStatus {
		/**
		 * 待接单
		 */
		public static Integer waitReceipt = 1;

		/**
		 * 待收款
		 */
		public static Integer waitPay = 2;

		/**
		 * 待派工
		 */
		public static Integer waitDispatching = 3;

		/**
		 * 已派工
		 */
		public static Integer dispathced = 4;

		/**
		 * 已完成
		 */
		public static Integer finished = 5;

		/**
		 * 申请取消中
		 */
		public static Integer applyCancel = 6;

		/**
		 * 已取消
		 */
		public static Integer canceled = 7;

		/**
		 * 不同意取消
		 */
		public static Integer disagreeCancel = 8;
	}

	/**
	 * 保洁订单状态
	 */
	public static class OrderInsuranceStatus {
		/**
		 * 待接单
		 */
		public static Integer waitReceipt = 1;

		/**
		 * 已完成
		 */
		public static Integer finished = 2;

	}

	/**
	 * 保洁订单状态
	 */
	public static class OrderInsurancePayStatus {
		/**
		 * 待接单
		 */
		public static Integer notPay = 1;

		/**
		 * 已完成
		 */
		public static Integer paid = 2;

	}

	/**
	 * 家政订单状态
	 */
	public enum OrderHouseKeepStatus {
		WAITRECEIPT(1, "待接单"), WAITDEAL(8, "待处理"), WAITINTERVIEW(9, "待面试"), WAITCONTRACT(10, "待签约"), WAITPAY(2, "待收款"), FINISHED(
				5, "已完成"), APPLYCANCEL(6, "申请取消中"), CANCELED(7, "已取消"), DISAGREE_CANCEL(11, "不同意取消");

		private int value;
		private String name;

		OrderHouseKeepStatus(Integer value, String name) {
			this.value = value;
			this.name = name;
		}

		/**
		 * 根据value获取name
		 * @param value
		 * @return
		 */
		public static String getNameByValue(Integer value) {
			String name = "";
			for(OrderHouseKeepStatus item : OrderHouseKeepStatus.values()) {
				if(item.value == value) {
					name = item.name;
					break;
				}
			}
			return name;
		}

		public Integer getValue() {
			return value;
		}

		public String getName() {
			return name;
		}
	}

	/**
	 * 订单类型
	 */
	public enum OrderTypeEnum {
		CLEANUP(1, "保洁订单"), HOUSEKEEP(2, "家政订单"), PACKAGECARD(3, "套餐卡订单"), INSURANCE(4, "保险订单"), EMPLOYER_QUALITY(5,
				"雇主质保单"), AUNT_QUALITY(6, "阿姨质保单"), HOUSEKEEP_SERVICE(7, "家政服务单");

		private int value;
		private String name;

		OrderTypeEnum(Integer value, String name) {
			this.value = value;
			this.name = name;
		}

		/**
		 * 根据value获取name
		 * @param value
		 * @return
		 */
		public static String getNameByValue(Integer value) {
			String name = "";
			for(OrderTypeEnum item : OrderTypeEnum.values()) {
				if(item.value == value) {
					name = item.name;
					break;
				}
			}
			return name;
		}

		public Integer getValue() {
			return value;
		}

		public String getName() {
			return name;
		}
	}

	/**
	 * 订单日志类型
	 */
	public enum OrderLogTypeEnum {

		INSERT(1, "新增"), UPDATE(2, "修改"), DELETE(3, "删除"), RECEIVABLES(4, "收款"), ADDAUNT(5, "添加阿姨"), CHOICEAUNT(6,
				"选定阿姨"), SUREAUNT(7, "确认阿姨"), FINISHED(8, "完成订单"), APPLYCANCEL(9, "申请取消"), SURECANCEL(10, "同意取消"), PLANINTERVIEW(
				11, "安排面试"), SIGN_CONTRACT(12, "签订合同"), REPLACE_AUNT(13, "更换阿姨"), SUSPEND_SERVICE(14, "暂停服务"), CANCEL_SERVICE(
				15, "取消服务"), RECOVERY_SERVICE(16, "恢复服务"), REMOVEAUNT(17, "移除阿姨"), DISAGREE_CANCEL(18, "不同意取消");

		private int value;
		private String name;

		OrderLogTypeEnum(Integer value, String name) {
			this.value = value;
			this.name = name;
		}

		/**
		 * 根据value获取name
		 * @param value
		 * @return
		 */
		public static String getNameByValue(Integer value) {
			String name = "";
			for(OrderLogTypeEnum item : OrderLogTypeEnum.values()) {
				if(item.value == value) {
					name = item.name;
					break;
				}
			}
			return name;
		}

		public Integer getValue() {
			return value;
		}

		public String getName() {
			return name;
		}
	}

	/**
	 * 质保单状态
	 */
	public enum QualityOrderStatus {
		NOT_START(1, "未开始"), QUALITY_ING(2, "质保中"), OVERDUE(3, "已过期"), SUSPEND(4, "已暂停"), CANCEL(5, "已取消");

		private int value;
		private String name;

		QualityOrderStatus(Integer value, String name) {
			this.value = value;
			this.name = name;
		}

		/**
		 * 根据value获取name
		 * @param value
		 * @return
		 */
		public static String getNameByValue(Integer value) {
			String name = "";
			for(QualityOrderStatus item : QualityOrderStatus.values()) {
				if(item.value == value) {
					name = item.name;
					break;
				}
			}
			return name;
		}

		public Integer getValue() {
			return value;
		}

		public String getName() {
			return name;
		}
	}

	/**
	 * 支付方式
	 */
	public static class PayMethod {
		/**
		 * 现金支付
		 */
		public static Integer Cash = 1;

		/**
		 * 线上微信
		 */
		public static Integer Online_WeChat = 2;

		/**
		 * 线下微信
		 */
		public static Integer Underline_WeChat = 3;

		/**
		 * 线上支付宝
		 */
		public static Integer Online_Ali = 4;

		/**
		 * 线下支付宝
		 */
		public static Integer Underline_Ali = 5;

		/**
		 * 银行卡
		 */
		public static Integer BankCard = 6;

	}

	/**
	 * 交易类型
	 */
	public enum TransactionTypeEnum {
		/**
		 * 雇主保洁服务费
		 */
		EMPLOYER_BAOJIE_SERVICE_FEE(1, "雇主保洁服务费"),
		/**
		 * 雇主家政中介费
		 */
		EMPLOYER_JIAZHENG_AGENCY_FEE(2, "雇主家政中介费"),
		/**
		 * 阿姨家政中介费
		 */
		AUNT_JIAZHENG_AGENCY_FEE(3, "阿姨家政中介费"),

		/**
		 * 阿姨保险费
		 */
		AUNT_INSURANCE_FEE(4, "阿姨保险费"),

		/**
		 * 购买套餐卡
		 */
		PACKAGE_CARD_FEE(5, "购买套餐卡");

		private int value;
		private String name;

		TransactionTypeEnum(int value, String name) {
			this.value = value;
			this.name = name;
		}

		/**
		 * 根据value获取name
		 * @param value
		 * @return
		 */
		public static String getNameByValue(int value) {
			String name = "";
			for(TransactionTypeEnum item : TransactionTypeEnum.values()) {
				if(item.value == value) {
					name = item.name;
					break;
				}
			}
			return name;
		}

		public Integer getValue() {
			return value;
		}

		public String getName() {
			return name;
		}
	}

	/**
	 * 套餐卡订单状态
	 */
	public enum PackageCarOrderStatus {

		NOUSE(1, "未使用"), USING(2, "使用中"), RUNOUT(3, "已用完"), OVERDUE$(4, "已过期");

		private int value;
		private String name;

		PackageCarOrderStatus(int value, String name) {
			this.value = value;
			this.name = name;
		}

		/**
		 * 根据value获取name
		 * @param value
		 * @return
		 */
		public static String getNameByValue(int value) {
			String name = "";
			for(PackageCarOrderStatus item : PackageCarOrderStatus.values()) {
				if(item.value == value) {
					name = item.name;
					break;
				}
			}
			return name;
		}

		public int getValue() {
			return value;
		}

		public String getName() {
			return name;
		}
	}

	/**
	 * 资金流向
	 */
	public enum PayMoneyFlow {

		EXPENDITURE(1, "支出"), INCOME(2, "收入");

		private int value;
		private String name;

		PayMoneyFlow(int value, String name) {
			this.value = value;
			this.name = name;
		}

		/**
		 * 根据value获取name
		 *
		 * @param value
		 * @return
		 */
		public static String getNameByValue(int value) {
			String name = "";
			for(PayMoneyFlow item : PayMoneyFlow.values()) {
				if(item.value == value) {
					name = item.name;
					break;
				}
			}
			return name;
		}

		public int getValue() {
			return value;
		}

		public String getName() {
			return name;
		}
	}

	/**
	 * 支付状态
	 */
	public enum PayStatusEnum {

		NOT_PAID(1, "未支付"), PAID(2, "已支付");

		private int value;
		private String name;

		PayStatusEnum(int value, String name) {
			this.value = value;
			this.name = name;
		}

		/**
		 * 根据value获取name
		 *
		 * @param value
		 * @return
		 */
		public static String getNameByValue(int value) {
			String name = "";
			for(PayStatusEnum item : PayStatusEnum.values()) {
				if(item.value == value) {
					name = item.name;
					break;
				}
			}
			return name;
		}

		public int getValue() {
			return value;
		}

		public String getName() {
			return name;
		}
	}

	/**
	 * 订单阿姨状态
	 */
	public enum OrderAuntStatus {

		UNDETERMINED(1, "待定"), WAIT_INTERVIEW(2, "待面试"), SURE(3, "选中"), NOT_SURE(4, "未选中"), REMOVE(5, "移除");

		private int value;
		private String name;

		OrderAuntStatus(int value, String name) {
			this.value = value;
			this.name = name;
		}

		/**
		 * 根据value获取name
		 *
		 * @param value
		 * @return
		 */
		public static String getNameByValue(int value) {
			String name = "";
			for(OrderAuntStatus item : OrderAuntStatus.values()) {
				if(item.value == value) {
					name = item.name;
					break;
				}
			}
			return name;
		}

		public int getValue() {
			return value;
		}

		public String getName() {
			return name;
		}
	}

	/**
	 * 订单服务周期类型
	 */
	public enum OrderServiceCycleType {
		/**
		 * 周天
		 */
		WEEKDAY(1),
		/**
		 * 时段
		 */
		TIME(2);

		private int value;

		OrderServiceCycleType(Integer value) {
			this.value = value;
		}

		public Integer getValue() {
			return value;
		}
	}

	/**
	 * 发送方式
	 */
	public enum NoticeMode {
		MSGMODE(1, "短信"), RMDMODE(2, "浏览器提醒"), MODE(3, "全部");

		private int value;
		private String name;

		NoticeMode(int value, String name) {
			this.value = value;
			this.name = name;
		}

		/**
		 * 根据value获取name
		 *
		 * @param value
		 * @return
		 */
		public static String getNameByValue(int value) {
			String name = "";
			for(NoticeMode item : NoticeMode.values()) {
				if(item.value == value) {
					name = item.name;
					break;
				}
			}
			return name;
		}

		public int getValue() {
			return value;
		}

		public String getName() {
			return name;
		}

	}

	/**
	 * 发送分类
	 */
	public enum NoticeRole {
		MSGMODE(1, "发给业务员"), RMDMODE(2, "发给客户"), MODE(3, "发给阿姨");

		private int value;
		private String name;

		NoticeRole(int value, String name) {
			this.value = value;
			this.name = name;
		}

		/**
		 * 根据value获取name
		 *
		 * @param value
		 * @return
		 */
		public static String getNameByValue(int value) {
			String name = "";
			for(NoticeMode item : NoticeMode.values()) {
				if(item.value == value) {
					name = item.name;
					break;
				}
			}
			return name;
		}

		public int getValue() {
			return value;
		}

		public String getName() {
			return name;
		}

	}

	/**
	 * 面试单状态
	 */
	public enum OrderInterviewStatus {
		/**
		 * 未生成面试单
		 */
		NON_ORDER(1),
		/**
		 * 未面试
		 */
		WAIT_INTERVIEW(2),

		/**
		 * 面试通过
		 */
		INTERVIEW_SUCCESS(3),

		/**
		 * 面试不通过
		 */
		INTERVIEW_FAIL(4);

		private int value;

		OrderInterviewStatus(Integer value) {
			this.value = value;
		}

		public Integer getValue() {
			return value;
		}
	}

	/**
	 * 支付方式
	 */
	public enum PayMethodEnum {

		/**
		 * 现金
		 */
		Cash(1, "现金"),
		/**
		 * 微信
		 */
		Online_WeChat(2, "微信"),
		/**
		 * 支付宝
		 */
		Online_Ali(3, "支付宝"),

		/**
		 * 银行卡
		 */
		BankCard(4, "银行卡");

		private int value;
		private String name;

		PayMethodEnum(int value, String name) {
			this.value = value;
			this.name = name;
		}

		/**
		 * 根据value获取name
		 *
		 * @param value
		 * @return
		 */
		public static String getNameByValue(int value) {
			String name = "";
			for(PayMethodEnum item : PayMethodEnum.values()) {
				if(item.value == value) {
					name = item.name;
					break;
				}
			}
			return name;
		}

		public int getValue() {
			return value;
		}

		public String getName() {
			return name;
		}

	}

	/**
	 * 阿姨日志类型
	 */
	public enum AuntLogTypeEnum {
		INSERT(1, "新增"), UPDATE(2, "修改");

		private int value;
		private String name;

		AuntLogTypeEnum(int value, String name) {
			this.value = value;
			this.name = name;
		}

		/**
		 * 根据value获取name
		 *
		 * @param value
		 * @return
		 */
		public static String getNameByValue(int value) {
			String name = "";
			for(AuntLogTypeEnum item : AuntLogTypeEnum.values()) {
				if(item.value == value) {
					name = item.name;
					break;
				}
			}
			return name;
		}

		public int getValue() {
			return value;
		}

		public String getName() {
			return name;
		}
	}

	/**
	 * 订单合同类型
	 */
	public enum OrderContractTypeEnum {
		/**
		 * 家政服务三方合同
		 */
		JIAZHENG(1, "家政服务三方合同"), BAOJIE(3, "保洁合同"), YUESAO(2, "月嫂合同");

		private int value;
		private String name;

		OrderContractTypeEnum(Integer value, String name) {
			this.value = value;
			this.name = name;
		}

		/**
		 * 根据value获取name
		 * @param value
		 * @return
		 */
		public static String getNameByValue(Integer value) {
			String name = "";
			for(OrderContractTypeEnum item : OrderContractTypeEnum.values()) {
				if(item.value == value) {
					name = item.name;
					break;
				}
			}
			return name;
		}

		public Integer getValue() {
			return value;
		}

		public String getName() {
			return name;
		}
	}
}
